package com.baiyu.common.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Locale;

/**
 * 时间转换
 * string转换为date
 *
 * @author wph
 */
public class ParseUtil {

    public static final String YYYY = "yyyy";

    public static final String YYYY_MM = "yyyy-MM";

    public static final String YYYY_MM_DD = "yyyy-MM-dd";

    public static final String HH_MM = "HH:mm";

    public static final String HH_MM_SS = "HH:mm:ss";

    public static final String YYYY_MM_DD_HH_MM_SS = "yyyy-MM-dd HH:mm:ss";


    /**
     * 年份
     *
     * @param date 日期
     * @return 年份
     */
    public static Date getYear(String date) {
        return parseDateToStr(YYYY, date);
    }

    /**
     * 年-月
     *
     * @param date 日期
     * @return 年-月
     */
    public static Date getYearMonth(String date) {
        return parseDateToStr(YYYY_MM, date);
    }

    /**
     * 年-月-日
     *
     * @param date 日期
     * @return 年-月-日
     */
    public static Date getYearMonthDay(String date) {
        return parseDateToStr(YYYY_MM_DD, date);
    }

    /**
     * 时：分
     *
     * @param date 日期
     * @return 时：分
     */
    public static Date getHourMinute(String date) {
        return parseDateToStr(HH_MM, date);
    }

    /**
     * 时：分：秒
     *
     * @param date 日期
     * @return 时：分：秒
     */
    public static Date getHourMinuteSecond(String date) {
        return parseDateToStr(HH_MM_SS, date);
    }


    /**
     * 年-月-日 时：分：秒
     *
     * @param date 日期
     * @return 年-月-日 时：分：秒
     */
    public static Date getYearMonthDayHourMinuteSecond(String date) {
        return parseDateToStr(YYYY_MM_DD_HH_MM_SS, date);
    }


    /**
     * 日期类型转换
     *
     * @param format 格式
     * @param date   日期
     * @return 结果
     */
    public static Date parseDateToStr(String format, String date) {
        if (StringUtils.isNotEmpty(date)) {
            try {
                return new SimpleDateFormat(format, Locale.CHINA).parse(date);
            } catch (ParseException e) {
                e.printStackTrace();
            }
        }
        return null;
    }

}
